python:如何通过NetworkX获得度分布的第二矩 | 您所在的位置:网站首页 › networkx 度分布 › python:如何通过NetworkX获得度分布的第二矩 |
我不确定您是否已经找到了答案,但是这里是一些关于网络科学的很好的文档。 有关您的问题,请参阅第四章,部分:"无标度意义": 如注释中所述,第二矩可以通过将度平方之和除以节点数(假设每个节点只存在一次且所有节点都有相同的概率)来计算。 下面是计算n_th矩的广义计算形式: 代码语言:javascript复制def nth_moment(g,n): s = 0 for node in g.nodes: s += g.degree[node] ** n return (s/len(g))使用该函数计算第二时刻的示例: 代码语言:javascript复制some_graph = nx.barabasi_albert_graph(10000, 2, seed=1) print(nth_moment(some_graph, 2))更快- Numpy 代码语言:javascript复制import numpy as np import networkx as nx g = nx.barabasi_albert_graph(10000, 2, seed=1) def nth_moment_v2(g,n): degree_np = np.array(list(dict(g.degree).values())) return (sum(degree_np**n)/len(g))时报: 代码语言:javascript复制st = time.time() print(nth_moment(g,2)) print(time.time()-st) st = time.time() print(nth_moment_v2(g,2)) print(time.time()-st)58.3626 0.017042160034179688 58.3626 0.005998849868774414 |
CopyRight 2018-2019 实验室设备网 版权所有 |